/**
 * @file pin_definition.h
 * @author yuhangsun
 * @brief 
 * @version 0.1
 * @date 2023-11-15
 * 
 * @copyright Copyright (c) 2023
 * 
 */

#ifndef PIN_DEFINITION_H
#define PIN_DEFINITION_H

#include "Arduino.h"


//定义I2C总线地址
#define I2C_ROBOT_ADDR 0x2D

//创建蓝牙控制对象
#define BLUETOOTH_UART USART1
#define BULETOOTH_BUAD (115200)


//定义I2C总线引脚
#define WIRE_SDA PB9
#define WIRE_SCL PB8
                                                 
//定义蓝牙模块引脚
#define TX PA10
#define RX PA9//在开发板中，PA9代表TX，要与RX相连

//定义I2C对象  
#define DEV_I2C WIRE

//定义语音播报模块引脚
#define JQ8900 PA1

//定义开发板内置LED灯
#define LED_13 PC13

//定义颜色识别传感器上的灯带
#define LED_PIN PA15

//定义颜色识别传感器中的灯珠数量
#define MAX_LED 2

//定义布尔值
#define ADD true
#define SUB false

//定义颜色识别模块的RGB值和寄存器地址
#define RGB_2           0x00
#define I2C_COLOR_ADDR  0x53
#define W_ADDR_L        0x66
#define R_ADDR_L        0x67
// 地址高位相关的定义
// ADDR->High
#define RGB_1           0x01
#define W_ADDR_H        0x98
#define R_ADDR_H        0x99

// 寄存器地址相关的宏定义
// 控制寄存器地址
#define ControlReg_Addr 0x00
// RGB控制寄存器地址
#define RGBCON_Addr     0x04
// 标识寄存器地址
#define ID_Addr         0x06
// 颜色数据（低字节、中字节、高字节）相关寄存器地址，用于红色通道
#define CDATAL_Addr     0x12
#define CDATAH_Addr     0x13
// 颜色数据（低字节、中字节、高字节）相关寄存器地址，用于红色通道
#define RDATAL_Addr     0x10
#define RDATAM_Addr     0x11
#define RDATAH_Addr     0x12
// 颜色数据（低字节、中字节、高字节）相关寄存器地址，用于绿色通道
#define GDATAL_Addr     0x0D
#define GDATAM_Addr     0x0E
#define GDATAH_Addr     0x0F
// 颜色数据（低字节、中字节、高字节）相关寄存器地址，用于蓝色通道
#define BDATAL_Addr     0x13
#define BDATAM_Addr     0x14
#define BDATAH_Addr     0x15


/* 配置参数相关定义 */
// 控制寄存器相关设置
// 复位控制位定义
#define RST             0x00

#endif //PIN_DEFINITION_H